package com.daocao.jy.api;

import io.reactivex.Observable;

import com.daocao.jy.api.bean.BirthDayBean;
import com.daocao.jy.api.bean.BuyLevelBean;
import com.daocao.jy.api.bean.CouponListBean;
import com.daocao.jy.api.bean.InitAppBean;
import com.daocao.jy.api.bean.LevelInfoBean;
import com.daocao.jy.api.bean.LoginBean;
import com.daocao.jy.api.bean.ModifyCheckCodeBean;
import com.daocao.jy.api.bean.ModifyResetBean;
import com.daocao.jy.api.bean.ModifySendBean;
import com.daocao.jy.api.bean.MyOrderListBean;
import com.daocao.jy.api.bean.NicknameBean;
import com.daocao.jy.api.bean.OilcardAddBean;
import com.daocao.jy.api.bean.OilcardDeleteBean;
import com.daocao.jy.api.bean.OilcardEditBean;
import com.daocao.jy.api.bean.OrderDetailBean;
import com.daocao.jy.api.bean.PaymentBean;
import com.daocao.jy.api.bean.RechargeInstantOrderBean;
import com.daocao.jy.api.bean.RechargeTermDetailBean;
import com.daocao.jy.api.bean.RechargeTermOrderBean;
import com.daocao.jy.api.bean.UserSexBean;
import com.daocao.jy.api.model.BuyLevelModel;
import com.daocao.jy.api.model.CouponListModel;
import com.daocao.jy.api.model.IndexModel;
import com.daocao.jy.api.model.InitAppModel;
import com.daocao.jy.api.model.LeveListModel;
import com.daocao.jy.api.model.LevelInfoModel;
import com.daocao.jy.api.model.LoginModel;
import com.daocao.jy.api.model.ModifyCheckCodeModel;
import com.daocao.jy.api.model.MyOrderListModel;
import com.daocao.jy.api.model.OilcardListModel;
import com.daocao.jy.api.model.OilcardTypeModel;
import com.daocao.jy.api.model.OrderDetailModel;
import com.daocao.jy.api.model.PaymentListModel;
import com.daocao.jy.api.model.RechargeInstantModel;
import com.daocao.jy.api.model.RechargeInstantOrderModel;
import com.daocao.jy.api.model.RechargeTermDetailModel;
import com.daocao.jy.api.model.RechargeTermModel;
import com.daocao.jy.api.model.RechargeTermOrderModel;
import com.daocao.jy.api.model.UserInfoModel;

import retrofit2.http.Body;
import retrofit2.http.POST;

/**
 * Created by xsooy-pc on 2017/8/24.
 */

public interface ApiService {
    //0.1.1、发送短信
    @POST("sms/send")
    Observable<ResponseModel> getSmsSend(@Body ModifySendBean item);

    //0.1.2、验证短信验证码
    @POST("sms/checkcode")
    Observable<ModifyCheckCodeModel> getSmsCheck(@Body ModifyCheckCodeBean item);


    //1、初始化
    @POST("init")
    Observable<InitAppModel> getInitInfo(@Body InitAppBean item);

    //1、初始化
    @POST("index")
    Observable<IndexModel> getIndex();


    @POST("user/login")
    Observable<LoginModel> getLogin(@Body LoginBean item);

    @POST("user/logout")
    Observable<ResponseModel> getLogout();

    //4.11使用原手机号码获取验证码
    @POST("modify-phone/send")
    Observable<ResponseModel> getModifySend(@Body ModifySendBean item);

    //4.12、验证原手机号码验证码
    @POST("modify-phone/checkcode")
    Observable<ModifyCheckCodeModel> getModifyCheckCode(@Body ModifyCheckCodeBean item);

    //4.13、修改手机号码
    @POST("modify-phone/reset")
    Observable<ResponseModel> getModifyReset(@Body ModifyResetBean item);

    //4.2、获取用户信息
    @POST("user/info")
    Observable<UserInfoModel> getUserInfo();

    //4.3、修改昵称
    @POST("user/reset-nickname")
    Observable<ResponseModel> getNickname(@Body NicknameBean item);

    //4.4、修改性别
    @POST("user/reset-sex")
    Observable<ResponseModel> getUserSex(@Body UserSexBean item);

    //4.5、修改生日
    @POST("user/reset-birthday")
    Observable<ResponseModel> getBirthday(@Body BirthDayBean item);

    //4.6、会员等级
    @POST("user/level/lists")
    Observable<LeveListModel> getLevelList();

    //4.7、获取等级信息
    @POST("user/level/getinfo")
    Observable<LevelInfoModel> getLevelInfo(@Body LevelInfoBean item);

    //4.8、我的订单
    @POST("order/lists")
    Observable<MyOrderListModel> getOrderList(@Body MyOrderListBean item);

    //4.8、我的订单
    @POST("order/details")
    Observable<OrderDetailModel> getOrderDetail(@Body OrderDetailBean item);

    //5.1、即时充值列表
    @POST("recharge/instant/combo")
    Observable<RechargeInstantModel> getRechargeInstant();

    //5.2、即时充值（提交订单）
    @POST("recharge/instant/buy")
    Observable<RechargeInstantOrderModel> getRechargeInstantOrder(@Body RechargeInstantOrderBean item);

    //5.3、分期充值列表
    @POST("recharge/term/combo")
    Observable<RechargeTermModel> getRechargeTerm();

    //5.4、分期充值（提交订单）
    @POST("recharge/term/buy")
    Observable<RechargeTermOrderModel> getRechargeTermOrder(@Body RechargeTermOrderBean item);

    //5.5、分期充值详细
    @POST("recharge/term/details")
    Observable<RechargeTermDetailModel> getRechargeTermDetail(@Body RechargeTermDetailBean item);

    //5.6、会员等级升级（提交订单）
    @POST("user/level/buy")
    Observable<BuyLevelModel> getBuyLevel(@Body BuyLevelBean item);

    //6.1、油卡类型
    @POST("oilcard/type")
    Observable<OilcardTypeModel> getOilCardType();

    //6.2、添加油卡
    @POST("oilcard/add")
    Observable<ResponseModel> getOilcardAdd(@Body OilcardAddBean bean);

    //6.3、油卡列表
    @POST("oilcard/lists")
    Observable<OilcardListModel> getOilcardList();

    //6.4、编辑油卡
    @POST("oilcard/edit")
    Observable<OilcardListModel> getOilcardEdit(@Body OilcardEditBean item);

    //6.5、删除油卡
    @POST("oilcard/delete")
    Observable<ResponseModel> getOilcardDelete(@Body OilcardDeleteBean item);

    //7.1、优惠券列表
    @POST("coupon/list")
    Observable<CouponListModel> getCouponList(@Body CouponListBean bean);

    //8.1、支付列表
    @POST("payment/lists")
    Observable<PaymentListModel> getPaymentList();

    //8.2、余额支付
    @POST("payment/pay/bag")
    Observable<ResponseModel> getBagPayment(@Body PaymentBean item);
}
